/*
 * tele_data_transfer.h
 *
 *  Created on: 2023年2月28日
 *      Author: Lw
 */

#ifndef SRC_TELE_DATA_TRANSFER_TELE_DATA_TRANSFER_H_
#define SRC_TELE_DATA_TRANSFER_TELE_DATA_TRANSFER_H_

#include "xil_types.h"
#include "dri_hal_can.h"

enum
{
    PREP_IMAGE = 0,
    ORIGIN_IMAGE,
	CALI_DARK,
    CALI_FLAT,
    TEST_IMAGE
}E_CAMERA_WORKMODE;

#define TELE_TYPE_ROUTINE 0x1A
#define TELE_TYPE_FW      0x2A
#define TELE_TYPE_PREP    0x3A
#define TELE_TYPE_MASK    0x4A

typedef struct{
    /* 整机状态信息 */
	u16 canTotalOrder;						/* 收到的总的指令数 */
	u16 canCompleOrder;						/* 收到的完整指令总数*/
    u8  ucStartMode;                        /* 启动方式, 0-emmc，1-flash */
    u8  ucUpdateStatus;                     /* 升级状态 */
    u16 FwLackPackageNum;                   /* 缺失的包数 */
    u16 FwLackPackageSeq[90];               /* 缺失的包序号 */
    u16 updataFwPackageSeq;                 /* 升级包序号 */
    u8 MaskInfo[12];                        /* Mask上注状态信息 */
    u32 DeadPixelNum[2];                    /* 坏像素点个数 */
    u16 yw2Version;                         /* 版本信息 */
    u8  equipInitStatus;                    /*设备初始化状态信息*/
    u8  caliInitStatus;
    u8 caliUseStatus;
    /* 相机1状态信息 */
    u8  ucCamera_1_status;                  /* 相机1当前状态 */
    u8  ucCamera_1_WorkMode;
    u8  usCamera_1_CurrentTmp;              /* 相机1当前温度 */
    u32 uiCamera_1_ExposureTime;            /* 相机1曝光时间 */
    u16 ucCamera_1_GainRGB;                 /* 相机1增益RGB */
    u16 ucCamera_1_GainAnalog;              /* 相机1模拟增益RGB*/
    u16 usCamera_1_GainEx;                  /* 相机1设置Ex增益, 16bit */
    u16 usCamera_1_HGCLGC;                  /* 相机1设置HGCLGC, 16bit */
    u16 ucCamera_1_Offset;                  /* 相机1的offset */
    u16 ucCamera_1_ShootNum;                /* 相机1拍摄张数 */
    u16  ucCamera_1_PlRecvPicNum;            /* 相机1pl实际收到的图片数量,  */
    u16  ucCamera_1_FinishedPicNum;          /* 相机1pl预处理模式中，已处理的张数,  */
    u16  ucCamera_1_MoveTargetNum;           /* 相机1pl预处理模式中，输出结果中动目标数量,  */
    u8  ucCamera_1_DdrSavedPicNum;          /* 相机1图像下行模式中，DDR中存储的数量,  */
    u8  ucCamera_1_SendPicNum;              /* 相机1图像下行模式中，LVDS接口读走的数量,  */
    u32  ucCamera_1_ShootTime;               /* 相机1连拍间隔时间us,  */
    /* 相机2状态信息 */
    u8  ucCamera_2_status;                  /* 相机2当前状态 */
    u8  ucCamera_2_WorkMode;
    u8 usCamera_2_CurrentTmp;              /* 相机2当前温度, 16bit */
    u32 uiCamera_2_ExposureTime;            /* 相机2曝光时间 */
    u16  ucCamera_2_GainRGB;                /* 相机2增益RGB */
    u16  ucCamera_2_GainAnalog;             /* 相机2模拟增益RGB */
    u16 usCamera_2_GainEx;                  /* 相机2设置Ex增益, 16bit */
    u16 usCamera_2_HGCLGC;                  /* 相机2设置HGCLGC, 16bit */
    u16  ucCamera_2_Offset;                  /* 相机2的offset */
    u16  ucCamera_2_ShootNum;               /* 相机2拍摄张数 */
    u16  ucCamera_2_PlRecvPicNum;            /* 相机2pl实际收到的图片数量, 4bit */
    u16  ucCamera_2_FinishedPicNum;          /* 相机2pl预处理模式中，已处理的张数, 4bit */
    u16  ucCamera_2_MoveTargetNum;           /* 相机2pl预处理模式中，输出结果中动目标数量, 4bit */
    u8  ucCamera_2_DdrSavedPicNum;          /* 相机2图像下行模式中，DDR中存储的数量, 4bit */
    u8  ucCamera_2_SendPicNum;              /* 相机2图像下行模式中，LVDS接口读走的数量, 4bit */
    u32 cameraLvdsPackNum;
    u32  ucCamera_2_ShootTime;               /* 相机2连拍间隔时间us */
    /* 电机1状态信息 */
    u8  ucMotor_1_Angle;                    /* 电机1转动角度 */
    /* 电机2状态信息 */
    u8  ucMotor_2_Angle;                    /* 电机1转动角度 */
    /* 定标板状态信息 */
    u8 ledBrightness;                       /*LED亮度 */
    u16 pl_1_status;
    u16 pl_2_status;

}S_tEquipmentStatus;

S_tEquipmentStatus g_tEquipmentStatus;      /* 设备的状态信息结构体 */

void TeleRoutineStatusMsg(S_tCanData* dataBuff);
void TeleFwStatusMsg(S_tCanData* dataBuff);
void TelePrepStatusMsg(S_tCanData* dataBuff);
void TeleMaskStatusMsg(S_tCanData* dataBuff);
#endif /* SRC_TELE_DATA_TRANSFER_TELE_DATA_TRANSFER_H_ */
